import { delToken, getToken, setToken } from '@/utils/storage'
import { login } from "@/api/user"
export default {
    namespaced: true,
    // 储存
    state() {
        return {
            token: getToken()
        }
    },
    // 改变数据
    mutations: {
        setUserToken(state, newToken) {
            state.token = newToken
                // 把新的token写到浏览器中
            setToken(newToken)
        },
        loginOut(state) {
            state.token = ''
            delToken()
        }
    },
    // 异步操作在action中的进行操作
    actions: {
        // 设置一个函数提供给前端页面进行异步调用
        async loginAction(context, obj) {
            // 第一个参数固定为context,第二个参数是前端传来的数据
            const res = await login(obj)
                // 需要把登陆后的token写进浏览器并设置state中的token，用commit
            context.commit('setUserToken', res.data.token)
                // console.log(res);
        }
    }
}